package one.stand.service;

import com.jmp.base.dto.GoodsPriceRemarkRequest;
import com.jmp.base.dto.GoodsSaveRequest;
import one.stand.model.Goods;
import one.stand.model.ResultModel;
import one.stand.request.GoodSpecRequest;
import one.stand.request.GoodsRequest;

import java.util.List;

/**
 * @author Administrator
 */
public interface GoodsService {

    int ISSHOW_HIDE = 0;
    int ISSHOW_SHOW = 1;

    /**
     * 移动商品信息
     */
    ResultModel<Boolean> moveGoodsInfo(GoodsRequest request);

    /**
     * 添加/修改商品信息
     */
    ResultModel addGoodsInfo(Goods model, Integer companyId, String specIds, String photos, List<GoodsSaveRequest.Spec> goodSpecRequestList);

    void save(Goods model, Integer companyId, String photos, List<GoodsSaveRequest.Spec> goodSpecRequestList);

    /**
     * 添加/修改商品规格信息
     */
    ResultModel addGoodSpecInfo(GoodSpecRequest request);

    /**
     * 转移产品
     */
    ResultModel transferGoods(GoodsRequest request);

    /**
     * 删除商品信息
     */
    ResultModel delGoodsInfo(Integer goodsId);

    /**
     * 删除商品规格信息
     */
    ResultModel delGoodSpecInfo(GoodSpecRequest request);

    ResultModel updateGoods(GoodsRequest request);

    ResultModel agentGoods(GoodsRequest request);

    void mainPush(Integer goodsId, boolean mainPush);

    void priceHide(Integer companyId);

    void priceShow(Integer companyId);

    void priceRemark(Integer goodsId, Integer showPrice, Integer isPayment, List<GoodsPriceRemarkRequest.GoodsSpec> specs);

    void updatePlatformType(Integer goodsId, List<Integer> typeIds, Integer popularityLevel);

    void deletePlatformType(Integer goodsId);

    void show(Integer id);

    void hide(Integer id);

    void updateQjVrUrl(Integer goodsId, String qjVrUrl);

    void updateModel(Integer specId, String modelPicUrl, String modelUrl, String modelZipPath);
}
